# -*- coding:utf-8 -*-
# Author: Zachary
# 必须放在最顶部，在所有数据库相关导入之前
import pymysql
pymysql.install_as_MySQLdb()  # 让 pymysql 伪装成 MySQLdb，让代码中import MySQLdb 时实际使用pymysql
import uvicorn
from common.constant import HOST, PORT
from routers import app
from common.log import Loggers
from fastapi.middleware.cors import CORSMiddleware

from fastapi import FastAPI

# 这里的应用对象名称可能是 app，也可能是其他名字
app = FastAPI()

# 配置允许跨域的源列表，添加前端实际运行的地址
origins = [
    "http://localhost:5173",  # 你的前端项目地址
    # 可以根据需要添加其他允许的源，如生产环境的域名
    # "https://your-production-domain.com",
]

# 添加 CORS 中间件
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,  # 允许指定的源访问
    allow_credentials=True,  # 允许携带 Cookie
    allow_methods=["*"],  # 允许所有 HTTP 方法（GET、POST、PUT 等）
    allow_headers=["*"],  # 允许所有请求头
)

# 定义路由等其他代码
@app.get("/")
async def hello():
    return {"Hello": "World"}

import pymysql


if __name__ == "__main__":
    Loggers.init_config()
    uvicorn.run("main:app", host=HOST, port=int(PORT), reload=True, log_config=None)
